# Variables pour les fichiers C
CFLAGS=-W -Wall
C_BIN=./C/bin
C_OBJ=./C/obj
C_SRC=./C/src

# Variables pour les fichiers Java
JAVA_SRC=./Java/src
JAVA_CLASS=./Java/class

JASPER_CP=/applis/sicstus-3.11.2/lib/sicstus-3.11.2/bin/jasper.jar
ifeq ($(USER), alex)
	JASPER_CP=/usr/local/sicstus4.2.3/lib/sicstus-4.2.3/bin/jasper.jar
endif
ifeq ($(USER), sofy)
	JASPER_CP=/opt/sicstus/lib/sicstus-4.2.3/bin/jasper.jar
endif
ifeq ($(USER), aginhoux)
	JASPER_CP=/applis/sicstus-3.11.2/lib/sicstus-3.11.2/bin/jasper.jar
endif
ifeq ($(USER), steixeir)
	JASPER_CP=/applis/sicstus-3.11.2/lib/sicstus-3.11.2/bin/jasper.jar
endif

C_TARGETS= $(C_OBJ) $(C_BIN)/client
JAVA_TARGETS=$(JAVA_CLASS) $(JAVA_CLASS)/InterfaceJava

#	Gestion de GDB. necessite de passer l'argument GDB=true
ifeq ($(GDB),true)
CFLAGS+=-g
endif

all: $(C_TARGETS) $(JAVA_TARGETS)

#	Creation des executables C
$(C_BIN)/client: $(C_OBJ)/client.o $(C_OBJ)/fonctionsTCP.o
	gcc -o $@ $^

#	Creation des fichiers objets C
$(C_OBJ)/%_d.o: $(C_SRC)/%.c
	gcc -c -o $@ $< $(CFLAGS) -DDEBUG=1
$(C_OBJ)/%.o: $(C_SRC)/%.c
	gcc -c -o $@ $< $(CFLAGS)

#	Creation des dossiers C
$(C_OBJ):
	mkdir $(C_OBJ)


# Création du fichier class Java
$(JAVA_CLASS)/InterfaceJava:
	javac -classpath $(JASPER_CP) -d $(JAVA_CLASS) $(JAVA_SRC)/*.java 

$(JAVA_CLASS):
	mkdir $(JAVA_CLASS)
	
runJava:
	java -classpath $(JASPER_CP):$(JAVA_CLASS) InterfaceJava 6742

clean:
	rm -rf $(C_OBJ) $(JAVA_CLASS)
	rm -f *~ $(C_SRC)/*~ $(JAVA_SRC)/*~
	
mrproper: clean
	rm -f $(C_TARGETS)

rebuild: mrproper all

info: 
	@echo -e "USAGE:\tmake [GOAL] [DEBUG=true] [GDB=true]\n\nGOAL:\n\tall:\t\tconstruit le fichier $(C_BIN)/client\n\tclean:\t\tsupprime le repertoire $(C_OBJ)\n\tmrproper:\tsupprime les repertoires $(C_OBJ) et $(C_BIN)\n\tinfo:\taffiche cette aide\n\nOPTIONS:\n\tDEBUG:\tcompile avec des instructions pour le debug\n\tGDB:\tcompile pour l'utilisation de gdb"
